Clustering systems utilize a plurality of computers to efficiently handle access to databases and data streams going to databases. A clustering system spreads processing load among computers, in a cluster, enabling the computers to process requests successively, as received by the clustering system. For example, when requested to perform a given transaction, the clustering system causes a computer that is currently under the lightest load to process the given transaction. In this manner, the clustering system controls each of the computers to be under substantially the same load, thereby improving the overall processing efficiency. To perform load balancing in a computer cluster, one or more computers must be excluded from a data stream to prevent these computers from receiving additional data to be processed. This exclusion of the one or more computers from the data stream continues until workloads are balanced. Once the balance has been achieved, the excluded computer or computers are included in the data stream again. Exclusion is used to maintain the consistency of the database.
To realize the exclusion process between accesses, the clustering system is required to perform additional operations such as communication between the computers. Therefore, if the clustering system frequently performs the exclusion process, the processing efficiency of the clustered systems may degrade. One example of frequent use of the exclusion process occurs under the condition where the clustering system executes batch processes in parallel. The batch process includes, for example, updating a large number of records successively.
For information about a technique to increase the efficiency of batch processes, please refer to the following Patent Document. Japanese Patent Application Publication No. 2005-071171 titled “Method For Controlling Batch Job Execution”.
In order that a clustering system achieves high efficiency even while performing batch processes, it maybe preferable to enable a user to designate a computer that is to perform each batch process, rather than automatically spreading the processing load across the computers. For example, in the case of first and second batch processes which access totally different data sets, the clustering system may cause different computers to perform the first and second batch processes.
In the case of third and fourth batch processes, which access data sets that are largely the same, if the clustering system causes different computers to perform the third and fourth batch processes, the exclusion process happens frequently. Alternatively, if the user designates the same computer for the third and fourth batch processes, the clustering system can be prevented from performing the exclusion process excessively.
However, the data to be accessed by each batch process may not be known in advance. This is the case, for example, for the use of an Enterprise Resource Planning (ERP) package. In ERP, the user often does not know what function a certain table in the database has in application programs. In fact, since the user does not know such a function, the user can use the application programs without regard to the database structure. An ERP package generally refers to a software package to integrate management of the core corporate functions, instead of department-to-department management, in order to make an effective use of the corporate management resources and thus increase management efficiency.
In another example, dynamic Structured Query Language (SQL) may be employed to improve programming efficiency. To be executed, a program written in dynamic SQL is first converted into a program written in conventional SQL. Accordingly, the program cannot be simply referenced in order to find out which table is to be accessed, since the table to be accessed is not known before the program is actually executed.
As discussed above, there are cases where data to be accessed by each batch process is not known in advance. In these cases, it is not known which computer is to be used to execute each batch process to provide efficiency. For this reason, the exclusion process may occur frequently especially when the clustering system performs batch processes. The frequent occurrence of the exclusion process may degrade the overall efficiency of the clustering system.